package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;

public class ListViewActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);


        EditText editText = findViewById(R.id.edit_text);

        SharedPreferences sp = getSharedPreferences("todolist", Context.MODE_PRIVATE);
        String text = sp.getString("text", "");  // 第一个参数是key，第二个参数是默认值
        // 把text显示edittext组件上
        editText.setText(text);


        // 监听输入框edittext内容变化事件
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // s表示输入框最新的内容，把s存到sharedpreference，作为草稿
                SharedPreferences sp = getSharedPreferences("todolist", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = sp.edit();
                editor.putString("text", s.toString());
                editor.commit();
                Log.i("tag", s.toString());  // 第一个参数是标签， 第二个参数是log的输出
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });


        // 定义数据 数组
        List<String> data = new ArrayList<>();
        for(int i=0; i<0; i++) {
            data.add("this is item" + i);
        }

        // 初始化一个adapter
        ArrayAdapter<String> arrayAdapter =
                new ArrayAdapter<>(this, R.layout.list_view_item, R.id.text2, data);

        // 关联listview与adapter
        ListView listView = findViewById(R.id.list_view);
        listView.setAdapter(arrayAdapter);       // 设置adapter

        Button button = findViewById(R.id.btn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 获取输入框的内容
                String s = editText.getText().toString();
                // 添加到data数组
                data.add(s);
                // 更新listview
                // 更新数据
                arrayAdapter.notifyDataSetChanged();

                // 清除sharedpreference中的内容
                SharedPreferences sp = getSharedPreferences("todolist", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = sp.edit();
                editor.remove("text");
                editor.commit();
                editText.setText("");  // 清空输入框内容
            }
        });



    }
}